package edu.ensabap.matricula.action;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;

import com.opensymphony.xwork2.ActionSupport;

import edu.ensabap.matricula.bean.AlumnoDTO;
import edu.ensabap.matricula.bean.TablaTipoDTO;
import edu.ensabap.matricula.constants.Globales;
import edu.ensabap.matricula.service.AlumnoService;
import edu.ensabap.matricula.service.TablaTipoService;

public class MantenimientoAction extends ActionSupport{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
//	importando los service
	@Autowired
	private AlumnoService alumnoService;
	@Autowired
	private TablaTipoService tablaTipoService;
	
//	importando objetos
	private List<AlumnoDTO> listaAlumnoDTOs;
	private AlumnoDTO alumno;
//	otro alumno para registrar
	private AlumnoDTO alumnoParaRegistrar;
	private AlumnoDTO alumnoParaModificar;
	
	private List<TablaTipoDTO> listaTablaTipoDTOs;
	private String mensajeGeneral;
	
//	variables de paginacion
	private int paginaActual;
	private int cantidadFilas;
	private int paginas[];
	private int cantidadPaginas;
	
	
//	/*CONSTRUCTOR*/
	public MantenimientoAction(){	
		System.out.println("ingreso a mantenimiento action");
		listaAlumnoDTOs = new ArrayList<AlumnoDTO>();
		alumno= new AlumnoDTO();
		alumnoParaRegistrar = new AlumnoDTO();
		alumnoParaModificar= new AlumnoDTO();
		listaTablaTipoDTOs = new ArrayList<TablaTipoDTO>();	
		
		if(paginaActual<=0)
		paginaActual=1;
	}
	
	
//	metodo que llena la lista
	public void cargarLista( ){
		cantidadFilas=Globales.NUMERO_FILAS;
		listaAlumnoDTOs = alumnoService.listarAlumnosPaginado(alumno, paginaActual, cantidadFilas);
		
	}
	public void paginacion(){
		cantidadPaginas=alumnoService.numeroPaginas(alumno, cantidadFilas);
//		for(int i=0;i<cantidadPaginas;i++){
//			paginas[i]=i++;
//		}
	}
	
//	este metodo muestra la pantalla de MANTENIMIENTO
	public String mantenimiento(){
		
		cargarLista();
		paginacion();
		return SUCCESS;
	}
	
//	para el buscar"listarPorParametros" (links de paginacion)
	public String listarPorParametros(){
		cargarLista();
		paginacion();
		return SUCCESS;
	}
	
//	abre el dialog para registrar NUEVO
	public String dialogRegistrarAlumno(){
		return SUCCESS;
	}
	
//	registra un alumno
	
	public String registrarAlumno(){
		int resultado= alumnoService.insertarAlumno(alumnoParaRegistrar);
		cargarLista();
		paginacion();
		return SUCCESS;
	}
	
//	abre el dialog para MODIFICAR
	public String dialogModificarAlumno(){
		alumnoParaModificar= alumnoService.obtenerAlumno(alumnoParaModificar);
		System.out.println("INGRESO AL ACTION DE ABRIR MODIFICAR");
		return SUCCESS;
	}
	
//	modifica el alumno
	
	public String modificarAlumno(){
		System.out.println("ingreso a modificar");
		System.out.println("el nuevo codigo es :"+alumnoParaModificar.getCodigo());
		System.out.println("el nuevo nombre es :"+alumnoParaModificar.getNombre());
		System.out.println("el nuevo apellido es :"+alumnoParaModificar.getApellido());
		System.out.println("el nuevo telefono es :"+alumnoParaModificar.getTelefono());
		int resultado= alumnoService.modificarAlumno(alumnoParaModificar);
		cargarLista();
		paginacion();
		return SUCCESS;
	}
	
//	elimina el alumno
	public String eliminarAlumno(){
		int resultado= alumnoService.eliminarAlumno(alumnoParaModificar);
		cargarLista();
		paginacion();
		return SUCCESS;
	}
	
	
	
	
//	GETTERS AND SETTERS
	public List<AlumnoDTO> getListaAlumnoDTOs() {
		return listaAlumnoDTOs;
	}


	public void setListaAlumnoDTOs(List<AlumnoDTO> listaAlumnoDTOs) {
		this.listaAlumnoDTOs = listaAlumnoDTOs;
	}


	public AlumnoDTO getAlumno() {
		return alumno;
	}


	public void setAlumno(AlumnoDTO alumno) {
		this.alumno = alumno;
	}


	public List<TablaTipoDTO> getListaTablaTipoDTOs() {
		return listaTablaTipoDTOs;
	}


	public void setListaTablaTipoDTOs(List<TablaTipoDTO> listaTablaTipoDTOs) {
		this.listaTablaTipoDTOs = listaTablaTipoDTOs;
	}


	public String getMensajeGeneral() {
		return mensajeGeneral;
	}


	public void setMensajeGeneral(String mensajeGeneral) {
		this.mensajeGeneral = mensajeGeneral;
	}


	public int getPaginaActual() {
		return paginaActual;
	}


	public void setPaginaActual(int paginaActual) {
		this.paginaActual = paginaActual;
	}


	public int getCantidadFilas() {
		return cantidadFilas;
	}


	public void setCantidadFilas(int cantidadFilas) {
		this.cantidadFilas = cantidadFilas;
	}


	public int[] getPaginas() {
		return paginas;
	}


	public void setPaginas(int[] paginas) {
		this.paginas = paginas;
	}


	public int getCantidadPaginas() {
		return cantidadPaginas;
	}


	public void setCantidadPaginas(int cantidadPaginas) {
		this.cantidadPaginas = cantidadPaginas;
	}


	public AlumnoDTO getAlumnoParaRegistrar() {
		return alumnoParaRegistrar;
	}


	public void setAlumnoParaRegistrar(AlumnoDTO alumnoParaRegistrar) {
		this.alumnoParaRegistrar = alumnoParaRegistrar;
	}


	public AlumnoDTO getAlumnoParaModificar() {
		return alumnoParaModificar;
	}


	public void setAlumnoParaModificar(AlumnoDTO alumnoParaModificar) {
		this.alumnoParaModificar = alumnoParaModificar;
	}
	
	
	
}
